package com.linkhub.oms.admin.modules.weighing.domain.param;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Positive;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * @author Jaycle
 * @version 1.0.0
 * @Description WeighingPackageInfoParam.java
 * @createTime 2024/10/02 21:12
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "WeighingPackageInfoParam", description = "WeighingPackageInfoParam")
public class WeighingPackageInfoParam implements Serializable {

    @ApiModelProperty(value = "必填，包裹条码信息", required = true)
    @NotBlank(message = "{weighting.package.ticketsNum.notBlank}")
    @JsonProperty("ticketsNum")
    private String ticketsNum;

    @ApiModelProperty(value = "必填，重量信息(单位在鸿顺捷分拣软件设置g/kg)", required = true)
    @Positive(message = "{weighing.package.weight.limit}")
    @JsonProperty("weight")
    private BigDecimal weight;

    @ApiModelProperty(value = "非必填，长度信息(单位在鸿顺捷分拣软件设置cm/mm)")
    @JsonProperty("length")
    private BigDecimal length;

    @ApiModelProperty(value = "非必填，宽度信息(单位在鸿顺捷分拣软件设置cm/mm)")
    @JsonProperty("width")
    private BigDecimal width;

    @ApiModelProperty(value = "非必填，高度信息(单位在鸿顺捷分拣软件设置cm/mm)")
    @JsonProperty("height")
    private BigDecimal height;

    @ApiModelProperty(value = "非必填，体积信息信息(根据设置的尺寸单位而定cm³/mm³)")
    @JsonProperty("volume")
    private BigDecimal volume;

    @ApiModelProperty(value = "非必填，仓库编号")
    @JsonProperty("whs_id")
    private String whsId;

    @ApiModelProperty(value = "非必填，设备编号")
    @JsonProperty("machine_id")
    private String machineId;

    @ApiModelProperty(value = "非必填，用户名")
    @JsonProperty("admin_username")
    private String adminUsername;
}
